package wodegua.d23_test.demo6;


/**
 * 需求
 * 给你单链表的头指针 head 和两个整数 left 和 right ，其中 left <= right 。请你反转从位置 left 到位置 right 的链表节点，并返回 反转后的链表。
 *
 * 比如 head 指向的链表内容大致是 1,2,3,4,5，1eft =2，right = 4
 * 反转后的链表就是 1.4.3.2.5
 * 如果链表只有一个节点:head指向的是5，1eft=1，right=1
 * 反转后的链表就还是5
 *
 * 具体功能点的要求如下
 * 1、设计一个Node泛型类，用于代表链表的结点。每个结点包含(数据data，和下一个结点的地址值next)3
 * 2、开发一个类叫MyLinkedList，提供一个add方法可以让用户添加链表的结点，直到用户输入exit，则返回链表(返回链表实际上是返回链表的头结点)5
 * 3、提供一个reverse方法，接收头指针 head 和两个整数 let和 right，其中|left<= right，按上面的要求进行反转。反转后，返回新的链表9
 * 4、提供一个forEach方法，接收新链表，并对其进行遍历输出。5
 */
public class Test06 {
    public static void main(String[] args) {
        MyLinkedList<String> myLinkedList = new MyLinkedList<>();

        System.out.println(10); // 0000 1010
        System.out.println(10>>1);// 0000 0101
        Node<String> head = myLinkedList.add();
        myLinkedList.forEach(head);
        head = myLinkedList.reverse(head, 1, 5);
        myLinkedList.forEach(head);
    }
}
